package com.zyl.blog.common.domain.task.bean;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;

import java.time.LocalDateTime;

/**
 * @version v1.0
 * @ProjectName: Personal_Blog_Server
 * @Package: com.zyl.blog.common.domain.task.bean
 * @ClassName: TaskAlert
 * @Description: 任务警告信息实体类
 * @Author FinalFantasy
 * @Date 2025/8/12-10:14
 */
@Data
@ToString
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true)
@TableName("task_alert")
public class TaskAlert {
    /**
     * 警告记录唯一标识符，自增主键
     */
    @TableId(value = "id", type = IdType.AUTO)
    @JsonProperty("id")
    private Long id;

    /**
     * 关联的任务名称
     */
    @TableField("task_name")
    @JsonProperty("taskName")
    private String taskName;

    /**
     * 任务所属用户名
     */
    @TableField("username")
    @JsonProperty("username")
    private String username;

    /**
     * 警告产生时间
     */
    @TableField("alert_time")
    @JsonProperty("alertTime")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime alertTime;

    /**
     * 警告级别：ERROR(错误)、WARN(警告)、INFO(信息)
     */
    @TableField("alert_level")
    @JsonProperty("alertLevel")
    private String alertLevel;

    /**
     * 警告信息内容，简要描述警告原因
     */
    @TableField("alert_message")
    @JsonProperty("alertMessage")
    private String alertMessage;

    /**
     * 异常堆栈跟踪信息，用于问题排查
     */
    @TableField("stack_trace")
    @JsonProperty("stackTrace")
    private String stackTrace;

    /**
     * 是否已解决：0-未解决，1-已解决
     */
    @TableField("is_resolved")
    @JsonProperty("isResolved")
    private Integer isResolved;
}
